import { ElMessage } from 'element-plus'

/**
 * 全局统一的消息通知工具
 * 封装Element Plus的ElMessage组件，保持风格统一
 */
export const Notification = {
  /**
   * 显示成功消息
   * @param {string} message 消息内容
   * @param {number} duration 显示时长（毫秒）
   */
  success(message, duration = 3000) {
    ElMessage({
      message,
      type: 'success',
      duration,
      showClose: true,
      grouping: true,
      offset: 80
    })
  },

  /**
   * 显示错误消息
   * @param {string} message 消息内容
   * @param {number} duration 显示时长（毫秒）
   */
  error(message, duration = 5000) {
    ElMessage({
      message,
      type: 'error',
      duration,
      showClose: true,
      grouping: true,
      offset: 80
    })
  },

  /**
   * 显示警告消息
   * @param {string} message 消息内容
   * @param {number} duration 显示时长（毫秒）
   */
  warning(message, duration = 4000) {
    ElMessage({
      message,
      type: 'warning',
      duration,
      showClose: true,
      grouping: true,
      offset: 80
    })
  },

  /**
   * 显示信息消息
   * @param {string} message 消息内容
   * @param {number} duration 显示时长（毫秒）
   */
  info(message, duration = 3000) {
    ElMessage({
      message,
      type: 'info',
      duration,
      showClose: true,
      grouping: true,
      offset: 80
    })
  },

  /**
   * 显示DDNS操作成功消息
   * 专用于DDNS配置保存等操作成功的消息
   */
  ddnsSuccess() {
    this.success('配置已成功保存，DDNS服务将使用新的配置继续运行', 4000)
  },

  /**
   * 显示表单验证失败消息
   */
  formValidationError() {
    this.warning('表单验证失败，请检查填写的内容', 3000)
  },

  /**
   * 显示网络连接错误消息
   */
  networkError() {
    this.error('操作失败，请检查网络连接', 5000)
  }
}

export default Notification 